package com.farm.state;

// 状态模式使用示例


//该模式将状态相关的逻辑封装到不同的状态类中，使得对象的行为随着状态的变化而变化，
// 同时避免了使用大量的条件判断语句
public class StatePatternDemo {
    public static void main(String[] args) {
        AgriculturalMachineContext context = new AgriculturalMachineContext();

        String machineName = "Machine1";
        // 初始状态
        context.request(machineName);
        System.out.println("当前状态: " + context.getState());

        // 切换到工作状态
        context.setState(new WorkingState());
        context.request(machineName);
        System.out.println("当前状态: " + context.getState());

        // 切换到维护状态
        context.setState(new MaintenanceState());
        context.request(machineName);
        System.out.println("当前状态: " + context.getState());

        // 切换回空闲状态
        context.setState(new IdleState());
        context.request(machineName);
        System.out.println("当前状态: " + context.getState());
    }
}